Εισαγωγή

MLightPanel ver1.1 help
Εισαγωγή

Το MLightPanel ver1.1 αποτελεί ένα .ΝΕΤ Framework 3.5 control, το οποίο αποτελεί επέκταση του στάνταρτ Windows Forms Panel control.

Με αυτό μπορούμε να ορίσουμε εμπλουτισμένες δυνατότητες background, όπως :

  • Σταθερό χρώμα (Solid color)

  • Διαβάθμιση δύο χρωμάτων (Gradient of two colors)

  • Διαβάθμιση πολλών χρωμάτων (multi - Gradient colors)

  • Μοτίβο (Hatch style)

  • Εικόνα (Texture)

    Η εικόνα μπορεί να αποδοθεί ως Tile ή όπως είναι με zoom, stretch κλπ.

Στην παρούσα έκδοση το multi-Gradient μπορεί να οριστεί μόνο μέσω κώδικα κι όχι στον Property Editor (design mode).

Namespace: Mouratx.Win

Ανάπτυξη : Χρήστος Μουρατίδης 2008-2009 - E mail: mouratx@yahoo.com


Διανομή

Διανομή

Άδεια έκδοσης : Freeware

  • Μπορείτε να χρησιμοποιήσετε ελεύθερα το component στις εφαρμογές σας.
  • Κατά τη διανομή, στο φάκελο της εφαρμογής σας πρέπει να αντιγράψετε και το assembly αρχείο MLightPanel.dll.


Επικοινωνία

Επικοινωνία

Για οποιαδήποτε πληροφορία ή διευκρίνηση παρακαλώ επικοινωνήστε στο :

mouratx@yahoo.com ή mouratx@hotmail.com

Χρήστος Μουρατίδης, Ιανουάριος 2009


Ιδιότητες

Ιδιότητες

BackColorInfo

Καθορίζει το χρώμα του BackGround

Οι παρακάτω ιδιότητες του στάνταρ Windows Forms Panel έχουν απενεργοποιηθεί :

  • BackColor
  • BackgroundImage
  • BackgroundImageLayout

διότι καλύπτονται από τη νέα ιδιότητα.


BackColorInfo

BackColorInfo

Θέτει ή λαμβάνει τις χρωματικές πληροφορίες του background του MLightPanel.

Τύπος : Αντικείμενο της κλάσης clsBackColorInfo.

Παράδειγμα : Στο παρακάτω παράδειγμα, δημιουργούμε ένα αντικείμενο clsBackColorInfo, του θέτουμε δύο χρώματα (μαύρο-κίτρινο) για ένα background τύπου GradientTwo, ορίζουμε το mode να είναι Centered και το εκχωρούμε στην ιδιότητα BackColorInfo ενός control MLightPanel1 :

Imports Mouratx.Win

Dim clr As New clsBackColorInfo
clr.ColorGradient1 = Color.Black
clr.ColorGradient2 = Color.Yellow
clr.GradientTwoMode = clsBackColorInfo.GradientModeEnum.Centered

MLightPanel1.BackColorInfo = clr
MLightPanel1.Invalidate()


Μέθοδοι

Μέθοδοι

Constructor New

Δημιουργεί ένα νέο αντικείμενο MLightPanel (+1 overload).


Constructor New

Constructor New

Δημιουργεί ένα νέο αντικείμενο MLightPanel.

  1. Public Sub New()
  2. Public Sub New(ByVal newBackColorInfo As clsBackColorInfo)

Παράμετροι :

  • newBackColorInfo: Δημιουργείται ένα νέο αντικείμενο MLightPanel και παίρνει αυτομάτως τιμές background από ένα αντικείμενο newBackColorInfo.

Παράδειγμα 1 : Δημιουργεί ένα νέο αντικείμενο MLightPanel με προκαθορισμένες τιμές BackColorInfo :

Imports Mouratx.Win

Dim MLightPanel1 As New MLightPanel

Παράδειγμα 2 : Δημιουργεί ένα νέο αντικείμενο MLightPanel με τιμές BackColorInfo που τις λαμβάνει από ένα αντικείμενο τύπου clsBackColorInfo :

Imports Mouratx.Win

Dim clr As New clsBackColorInfo
clr.ColorGradient1 = Color.Black
clr.ColorGradient2 = Color.Yellow
clr.GradientTwoMode = clsBackColorInfo.GradientModeEnum.Centered
clr.BackColorType = clsBackColorInfo.BackColorTypeEnum.GradientTwo

Dim MLightPanel1 As New MLightPanel(clr)


Γεγονότα

Γεγονότα

BackColorInfoChanged

Ενεργοποιείται όταν θέτουμε ένα αντικείμενο τύπου clsBackColorInfo στην ιδιότητα BackColorInfo.

Τα παρακάτω γεγονότα του στάνταρ Windows Forms Panel έχουν απενεργοποιηθεί :

  • BackColorChanged
  • BackgroundImageChanged
  • BackgroundImageLayoutChanged


BackColorInfoChanged

BackColorInfoChanged

Ενεργοποιείται όταν θέτουμε ένα αντικείμενο τύπου clsBackColorInfo στην ιδιότητα BackColorInfo.

Public Event BackColorInfoChanged(ByVal sender As Object)


Η κλάση clsBackColorInfo - Γενικά

Η κλάση clsBackColorInfo - Γενικά

Η ιδιότητα BackColorInfo του control, που περιέχει τις πληροφορίες του background, δέχεται ένα αντικείμενο της κλάσης clsBackColorInfo.

Η κλάση αυτή είναι public και περιέχει ιδιότητες και μεθόδους που μπορεί ο προγραμματιστής να χρησιμοποιήσει για να θέσει απ' ευθείας τιμές για το background του control.

Π.χ για να θέσει ένα σταθερό κίτρινο χρώμα στο φόντο του MLightPanel :

Imports Mouratx.Win

MLightPanel1.BackColorInfo.ColorSolid = Color.Yellow
MLightPanel1.BackColorInfo.BackColorType = clsBackColorInfo.BackColorTypeEnum.Solid
MLightPanel1.Invalidate()

ή

Π.χ για να θέσει ένα μοτίβο με κόκκινες γραμμές σε κίτρινο φόντο στο MLightPanel :

MLightPanel1.BackColorInfo.HatchHatchStyle = System.Drawing.Drawing2D.HatchStyle.Cross
MLightPanel1.BackColorInfo.HatchForeColor = Color.Red
MLightPanel1.BackColorInfo.HatchBackColor = Color.Yellow
MLightPanel1.BackColorInfo.BackColorType = clsBackColorInfo.BackColorTypeEnum.Hatch
MLightPanel1.Invalidate()

Εναλλακτικά, θα μπορούμε να δημιουργήσουμε ένα αντικείμενο της κλάσης clsBackColorInfo, να του αποδώσουμε τις τιμές και να το εκχωρήσουμε στην ιδιότητα BackColorInfo του control :

Dim clr As New clsBackColorInfo

'Πέρνα τις υπάρχουσες πληροφορίες background στο νέο αντικείμενο
clr.CopyFrom(MLightPanel1.BackColorInfo)

'Άλλαξε τις τιμές
clr.HatchHatchStyle = Drawing2D.HatchStyle.Cross
clr.HatchForeColor = Color.Red
clr.HatchBackColor = Color.Yellow
clr.BackColorType = clsBackColorInfo.BackColorTypeEnum.Hatch

'Θέσε το αντικείμενο στην ιδιότητα του control
MLightPanel1.BackColorInfo = clr

MLightPanel1.Invalidate()

Συνήθης πρακτική είναι να περνάμε, με τη μέθοδο CopyFrom, τις υπάρχουσες πληροφορίες φόντου του control σε ένα νέο αντικείμενο, να τις αλλάζουμε και να τις εκχωρούμε πίσω στο control.

ΣΗΜΕΙΩΣΗ : Αν ακολουθήσουμε τη δεύτερη εναλλακτική προσέγγιση, δηλαδή να εκχωρούμε ένα αντικείμενο clsBackColorInfo στην ιδιότητα BackColorInfo του control, τότε μόνο ενεργοποιείται το γεγονός BackColorInfoChanged.

Συνεπώς, αν σας ενδιαφέρει να χρησιμοποιείτε το γεγονός αυτό τότε πρέπει αναγκαστικά να ακολουθήσετε τη δεύτερη εναλλακτική προσέγγιση.

Namespace: Mouratx.Win


Απαριθμήσεις της κλάσης clsBackColorInfo

Απαριθμήσεις της κλάσης clsBackColorInfo

BackColorTypeEnum | Καθορίζει τον τύπο του background.
GradientModeEnum | Καθορίζει το mode της διαβάθμισης δύο ή πολλών χρωμάτων.
GradientTwoEffectEnum | Καθορίζει το Blend Effect στη διαβάθμιση δύο χρωμάτων.
WrapStylesEnum | Καθορίζει τον τρόπο σχεδιασμού μίας εικόνας ως Texture.


BackColorTypeEnum

BackColorTypeEnum

Απαρίθμηση της κλάσης clsBackColoInfo.

Καθορίζει τον τύπο του background.

Τιμές :

Solid | Σταθερό χρώμα.
GradientTwo | Διαβάθμιση δύο χρωμάτων.
GradientMulti | Διαβάθμιση πολλών χρωμάτων.
Hatch | Μοτίβο.
Texture | Εικόνα.


GradientModeEnum

GradientModeEnum

Απαρίθμηση της κλάσης clsBackColoInfo.

Καθορίζει τον τύπο της διαβάθμισης δύο ή πολλών χρωμάτων. Αφορά GradientTwo και GradienMutli τύπο background.

Τιμές :

Horizontal | Διαβάθμιση από αριστερά προς τα δεξιά.
Vertical | Διαβάθμιση από πάνω προς τα κάτω.
ForwardDiagonal | Διαβάθμιση από πάνω αριστερά προς κάτω δεξιά.
BackwardDiagonal | Διαβάθμιση από πάνω δεξιά προς κάτω αριστερά.
Centered | Διαβάθμιση από μέσα προς τα έξω.


GradientTwoEffectEnum

GradientTwoEffectEnum

Απαρίθμηση της κλάσης clsBackColoInfo.

Καθορίζει το Blend effect για τύπο διαβάθμισης δύο χρωμάτων. Αφορά GradientTwo τύπο background.

Τιμές :

None | Κανένα εφέ.
Triangular | Εφέ Triangular.
SigmaBell | Εφέ SigmaBell.

Σημείωση : Το εφέ δεν ισχύει για centered GradientMode.


WrapStylesEnum

WrapStylesEnum

Απαρίθμηση της κλάσης clsBackColoInfo.

Καθορίζει τον τρόπο σχεδιασμού μίας bitmap εικόνας ως Texture στο background.

Τιμές :

Normal | Η εικόνα σχεδιάζεται κανονικά από την πάνω αριστερή γωνία.
Stretch | Η εικόνα σχεδιάζεται ώστε να καταλαμβάνει όλο το background αδιαφορώντας για τις αναλογίες.
Center | Η εικόνα σχεδιάζεται ώστε το κέντρο της να είναι στο κέντρο του background.
Zoom | Η εικόνα σχεδιάζεται λαμβάνοντας υπόψη τις αναλογίες.
Tile | Η εικόνα αναδιπλώνεται στο χώρο του background.
TileFlipX | Η εικόνα γυρίζει ανάποδα οριζοντίως και κατόπιν αναδιπλώνεται στο χώρο του background.
TileFlipY | Η εικόνα γυρίζει ανάποδα κατακόρυφα και κατόπιν αναδιπλώνεται στο χώρο του background.
TileFlipXY | Η εικόνα γυρίζει ανάποδα οριζοντίως και κατακόρυφα και κατόπιν αναδιπλώνεται στο χώρο του background.


Δομές της κλάσης clsBackColorInfo

Δομές της κλάσης clsBackColorInfo

GradientMultiInfoStruct

Περιέχει πληροφορίες για καθένα στοιχείο της λίστας του GradientMulti τύπου background.


GradientMultiInfoStruct

GradientMultiInfoStruct

Δομή της κλάσης clsBackColoInfo.

Περιέχει πληροφορίες για καθένα στοιχείο της λίστας του GradientMulti τύπου background.

Public Structure GradientMultiInfoStruct

Dim Position As Single?

Dim Color As Color?

End Structure

Position : Δεν χρησιμοποιείται στην παρούσα έκδοση. Βάλτε μηδέν.
Color : Το χρώμα.

Οι μεταβλητές στη δομή έχουν οριστεί Nullable.

Παράδειγμα : Δημιουργούμε ένα τρίχρωμο multi Gradient με vertical προσανατολισμό :

Imports Mouratx.Win

'Δημιούργησε τη λίστα τύπου GradientMultiInfoStruct
Dim LstColors As New List(Of clsBackColorInfo.GradientMultiInfoStruct)

'Δημιούργησε μία μεταβλητή item τύπου GradientMultiInfoStruct και βάλε τις πληροφορίες για 3 χρώματα : μαύρο, κίτρινο, κόκκινο Πρόσθεσε κάθε item στη λίστα..
Dim item As clsBackColorInfo.GradientMultiInfoStruct

item.Color = Color.Black :
item.Position = 0 : LstColors.Add(item)
item.Color = Color.Yellow :
item.Position = 0 : LstColors.Add(item)
item.Color = Color.Red :
item.Position = 0 : LstColors.Add(item)

'Εκχώρησε τη λίστα στην αντίστοιχη ιδιότητα του control, όρισε Gradient mode και καθόρισε τον τύπο του backhround
MLightPanel1.BackColorInfo.ColorGradientMulti = LstColors

MLightPanel1.BackColorInfo.GradientMultiMode = clsBackColorInfo.GradientModeEnum.Vertical

MLightPanel1.BackColorInfo.BackColorType = clsBackColorInfo.BackColorTypeEnum.GradientMulti

MLightPanel1.Invalidate()


Ιδιότητες της κλάσης clsBackColorInfo

Ιδιότητες της κλάσης clsBackColorInfo

BackColorType | Θέτει ή λαμβάνει τον τύπο του background (π.χ. Solid, Gradient Two κλπ).
ColorSolid | Θέτει ή λαμβάνει το σταθερό χρώμα.
ColorGradient1 | Θέτει ή λαμβάνει το πρώτο Gradient χρώμα (για Gradient Two background type).
ColorGradient2 | Θέτει ή λαμβάνει το δεύτερο Gradient χρώμα (για Gradient Two background type).
GradientTwoEffectBlendEffect | Θέτει ή λαμβάνει το Blend Effect (για Gradient Two background type).
GradientTwoEffectFocus | Θέτει ή λαμβάνει το focus του Blend Effect, δηλαδή σε ποιό σημείο γίνεται η μετάβαση από το πρώτο χρώμα στο δεύτερο ενός Gradient Two background type.
GradientTwoEffectScale | Θέτει ή λαμβάνει το scale του Blend Effect, δηλαδή πόσο έντονη γίνεται η μετάβαση από το πρώτο χρώμα στο δεύτερο ενός Gradient Two background type.
GradientTwoMode | Θέτει ή λαμβάνει το mode ενός Gradient Two background type. Π.χ. Horizontal, Vertical, ForwardDiagonal, Centered κλπ.
GradientMultiMode | Θέτει ή λαμβάνει το mode ενός Gradient Multi background type. Π.χ. Horizontal, Vertical, ForwardDiagonal, Centered κλπ
ColorGradientMulti | Θέτει ή λαμβάνει μία λίστα (List) των χρωμάτων ενός Gradient Multi background type.
HatchHatchStyle | Θέτει ή λαμβάνει το στυλ ενός μοτίβου.
HatchForeColor | Θέτει ή λαμβάνει το χρώμα των γραμμών ενός μοτίβου.
HatchBackColor | Θέτει ή λαμβάνει το χρώμα των κενών μεταξύ των γραμμών ενός μοτίβου.
TextureImage | Θέτει ή λαμβάνει μία εικόνα (Bitmap) ως Texture.
TextureWrapStyle | Θέτει ή λαμβάνει τον τρόπο σχεδιασμού της εικόνας σε ένα Texture. Π.χ. zoom, stretch, tile κλπ.
TextureScaleX | Θέτει ή λαμβάνει την ανάπτυξη κατά πλάτος μίας εικόνας σε tile wrap style.
TextureScaleY | Θέτει ή λαμβάνει την ανάπτυξη κατά ύψος μίας εικόνας σε tile wrap style.
AlphaValue | Θέτει ή λαμβάνει τη διαφάνεια. Δεν αφορά μοτίβο και tile wrap style.
SuspendDrawing | Θέτει ή λαμβάνει τη δυνατότητα να ενεργοποιείται ή όχι ή σχεδίαση του control. Χρήσιμο για αποφυγή του παράπλευρου εφέ flickering κατά το resizing του container του control.


BackColorType

BackColorType

Ιδότητα της κλάσης clsBackColoInfo.

Θέτει ή λαμβάνει τον τύπο του background (π.χ. Solid, Gradient Two κλπ).

Τύπος : BackColorTypeEnum

Default τιμή : GradientTwo

Παράδειγμα : Στο MLightPanel1 ορίζουμε το background type σε διαβάθμισης δύο χρωμάτων :

Imports Mouratx.Win

MLightPanel1.BackColorInfo.BackColorType = clsBackColorInfo.BackColorTypeEnum.GradientTwo


ColorSolid

ColorSolid

Ιδότητα της κλάσης clsBackColoInfo.

Θέτει ή λαμβάνει το σταθερό χρώμα background.

Τύπος : Color

Default τιμή : Color.FromKnownColor(KnownColor.Control)

Παράδειγμα : Στο MLightPanel1 ορίζουμε το background χρώμα σε κίτρινο :

Imports Mouratx.Win

With MLightPanel1.BackColorInfo

.ColorSolid = Color.Yellow
.BackColorType = clsBackColorInfo.BackColorTypeEnum.Solid

End With

MLightPanel1.Invalidate()


ColorGradient1

ColorGradient1

Ιδότητα της κλάσης clsBackColoInfo.

Θέτει ή λαμβάνει το πρώτο χρώμα σε ένα GradientTwo τύπο background.

Τύπος : Color

Default τιμή : Color.FromKnownColor(KnownColor.Control)

Παράδειγμα 1 : Στο MLightPanel1 ορίζουμε το πρώτο χρώμα σε πορτοκαλί, το δεύτερο σε κίτρινο, τον προσανατολισμό σε Vertical, σε ένα GradientTwo τύπο background :

Imports Mouratx.Win

With MLightPanel1.BackColorInfo

.ColorGradient1 = Color.Orange
.ColorGradient2 = Color.Yellow
.GradientTwoMode = clsBackColorInfo.GradientModeEnum.Vertical
 .BackColorType = clsBackColorInfo.BackColorTypeEnum.GradientTwo

End With

MLightPanel1.Invalidate()

Παράδειγμα 2 : Στο MLightPanel1 ορίζουμε το πρώτο χρώμα σε μαύρο, το δεύτερο σε κίτρινο, τον προσανατολισμό σε Centered, σε ένα GradientTwo τύπο background :

Imports Mouratx.Win

With MLightPanel1.BackColorInfo

.ColorGradient1 = Color.Black
.ColorGradient2 = Color.Yellow
.GradientTwoMode = clsBackColorInfo.GradientModeEnum.Centered
 .BackColorType = clsBackColorInfo.BackColorTypeEnum.GradientTwo

End With

MLightPanel1.Invalidate()


ColorGradient2

ColorGradient2

Ιδότητα της κλάσης clsBackColoInfo.

Θέτει ή λαμβάνει το δεύτερο χρώμα σε ένα GradientTwo τύπο background.

Τύπος : Color

Default τιμή : Color.White

Παράδειγμα 1 : Στο MLightPanel1 ορίζουμε το πρώτο χρώμα σε πορτοκαλί, το δεύτερο σε κίτρινο, τον προσανατολισμό σε Vertical, σε ένα GradientTwo τύπο background :

Imports Mouratx.Win

With MLightPanel1.BackColorInfo

.ColorGradient1 = Color.Orange
.ColorGradient2 = Color.Yellow
.GradientTwoMode = clsBackColorInfo.GradientModeEnum.Vertical
 .BackColorType = clsBackColorInfo.BackColorTypeEnum.GradientTwo

End With

MLightPanel1.Invalidate()

Παράδειγμα 2 : Στο MLightPanel1 ορίζουμε το πρώτο χρώμα σε μαύρο, το δεύτερο σε κίτρινο, τον προσανατολισμό σε Centered, σε ένα GradientTwo τύπο background :

Imports Mouratx.Win

With MLightPanel1.BackColorInfo

.ColorGradient1 = Color.Black
.ColorGradient2 = Color.Yellow
.GradientTwoMode = clsBackColorInfo.GradientModeEnum.Centered
 .BackColorType = clsBackColorInfo.BackColorTypeEnum.GradientTwo

End With

MLightPanel1.Invalidate()


GradientTwoMode

GradientTwoMode

Ιδότητα της κλάσης clsBackColoInfo.

Θέτει ή λαμβάνει τον τρόπο της διαβάθμισης σε ένα GradientTwo τύπο background.

Τύπος : GradientModeEnum

Default τιμή : GradientModeEnum.Vertical

Παράδειγμα : Στο MLightPanel1 ορίζουμε το πρώτο χρώμα σε μαύρο, το δεύτερο σε κίτρινο, τον προσανατολισμό σε Centered, σε ένα GradientTwo τύπο background :

Imports Mouratx.Win

With MLightPanel1.BackColorInfo

.ColorGradient1 = Color.Black
.ColorGradient2 = Color.Yellow
.GradientTwoMode = clsBackColorInfo.GradientModeEnum.Centered
 .BackColorType = clsBackColorInfo.BackColorTypeEnum.GradientTwo

End With

MLightPanel1.Invalidate()


GradientTwoEffectBlendEffect

GradientTwoEffectBlendEffect

Ιδότητα της κλάσης clsBackColoInfo.

Θέτει ή λαμβάνει το Blend εφέ σε ένα GradientTwo τύπο background.

Τύπος : GradientTwoEffectEnum

Default τιμή : GradientTwoEffectEnum.None

Σημείωση : Η ιδιότητα αυτή αγνοείται σε περίπτωση που η GradientTwoMode έχει οριστεί Centered.

Παράδειγμα : Στο MLightPanel1 ορίζουμε το Blend εφέ σε SigmaBell σε ένα GradientTwo τύπο background, με focus στο 0.3, scale sto 0.6, προσανατολισμό ForwardDiagonal και χρώματα το μπλε και κίτρινο:

Imports Mouratx.Win

With MLightPanel1.BackColorInfo

.ColorGradient1 = Color.Blue
.ColorGradient2 = Color.Yellow
.GradientTwoMode = clsBackColorInfo.GradientModeEnum.ForwardDiagonal
.BackColorType = clsBackColorInfo.BackColorTypeEnum.GradientTwo
.GradientTwoEffectBlendEffect = clsBackColorInfo.GradientTwoEffectEnum.SigmaBell
.GradientTwoEffectFocus = 0.3F
.GradientTwoEffectScale = 0.6F

End With

MLightPanel1.Invalidate()


GradientTwoEffectFocus

GradientTwoEffectFocus

Ιδότητα της κλάσης clsBackColoInfo.

Θέτει ή λαμβάνει το focus του Blend Effect, δηλαδή σε ποιό σημείο γίνεται η μετάβαση από το πρώτο χρώμα στο δεύτερο, σε ένα GradientTwo τύπο background.

Τύπος : Single

Εύρος τιμών : Από 0 έως 1

Default τιμή : 0.5

Σημείωση : Η ιδιότητα αυτή αγνοείται σε περίπτωση που η GradientTwoMode έχει οριστεί Centered.

Παράδειγμα : Στο MLightPanel1 ορίζουμε το Blend εφέ σε SigmaBell σε ένα GradientTwo τύπο background, με focus στο 0.3, scale sto 0.6, προσανατολισμό ForwardDiagonal και χρώματα το μπλε και κίτρινο:

Imports Mouratx.Win

With MLightPanel1.BackColorInfo

.ColorGradient1 = Color.Blue
.ColorGradient2 = Color.Yellow
.GradientTwoMode = clsBackColorInfo.GradientModeEnum.ForwardDiagonal
.BackColorType = clsBackColorInfo.BackColorTypeEnum.GradientTwo
.GradientTwoEffectBlendEffect = clsBackColorInfo.GradientTwoEffectEnum.SigmaBell
.GradientTwoEffectFocus = 0.3
.GradientTwoEffectScale = 0.6

End With

MLightPanel1.Invalidate()


GradientTwoEffectScale

GradientTwoEffectScale

Ιδότητα της κλάσης clsBackColoInfo.

Θέτει ή λαμβάνει το scale του Blend Effect, δηλαδή πόσο έντονη γίνεται η μετάβαση από το πρώτο χρώμα στο δεύτερο, σε ένα GradientTwo τύπο background.

Τύπος : Single

Εύρος τιμών : Από 0 έως 1

Default τιμή : 0.5

Σημείωση : Η ιδιότητα αυτή αγνοείται σε περίπτωση που η GradientTwoMode έχει οριστεί Centered.

Παράδειγμα : Στο MLightPanel1 ορίζουμε το Blend εφέ σε SigmaBell σε ένα GradientTwo τύπο background, με focus στο 0.3, scale sto 0.6, προσανατολισμό ForwardDiagonal και χρώματα το μπλε και κίτρινο:

Imports Mouratx.Win

With MLightPanel1.BackColorInfo

.ColorGradient1 = Color.Blue
.ColorGradient2 = Color.Yellow
.GradientTwoMode = clsBackColorInfo.GradientModeEnum.ForwardDiagonal
.BackColorType = clsBackColorInfo.BackColorTypeEnum.GradientTwo
.GradientTwoEffectBlendEffect = clsBackColorInfo.GradientTwoEffectEnum.SigmaBell
.GradientTwoEffectFocus = 0.3
.GradientTwoEffectScale = 0.6

End With

MLightPanel1.Invalidate()


GradientMultiMode

GradientMultiMode

Ιδότητα της κλάσης clsBackColoInfo.

Θέτει ή λαμβάνει τον τρόπο της διαβάθμισης σε ένα GradientMulti τύπο background.

Τύπος : GradientModeEnum

Default τιμή : GradientModeEnum.Vertical

Σημείωση : Η ιδιότητα αυτή τίθεται, στην παρούσα έκδοση, μόνο μέσω κώδικα κι όχι στον Property Editor (design mode).

Παράδειγμα : Στο MLightPanel1 ορίζουμε multi-Gradient με τρία χρώματα μαύρο-κίτρινο-κόκκινο και τον προσανατολισμό σε Vertical :

Imports Mouratx.Win

'Δημιούργησε τη λίστα τύπου GradientMultiInfoStruct
Dim LstColors As New List(Of clsBackColorInfo.GradientMultiInfoStruct)

Dim item As clsBackColorInfo.GradientMultiInfoStruct

'Δημιούργησε μία μεταβλητή item τύπου GradientMultiInfoStruct και βάλε τις πληροφορίες για 3 χρώματα : μαύρο, κίτρινο, κόκκινο Πρόσθεσε κάθε item στη λίστα..
item.Color = Color.Black : item.Position = 0 : LstColors.Add(item)
item.Color = Color.Yellow : item.Position = 0 : LstColors.Add(item)
item.Color = Color.Red : item.Position = 0 : LstColors.Add(item)

'Εκχώρησε τη λίστα στην αντίστοιχη ιδιότητα του control, όρισε Gradient mode και καθόρισε τον τύπο του backhround
With MLightPanel1.BackColorInfo

.ColorGradientMulti = LstColors
.GradientMultiMode = clsBackColorInfo.GradientModeEnum.Vertical
 .BackColorType = clsBackColorInfo.BackColorTypeEnum.GradientMulti

End With

MLightPanel1.Invalidate()

  • Δείτε τί γίνεται αν θέσουμε στο ίδιο παράδειγμα :

.GradientMultiMode = clsBackColorInfo.GradientModeEnum.Centered


ColorGradientMulti

ColorGradientMulti

Ιδότητα της κλάσης clsBackColoInfo.

Θέτει ή λαμβάνει μία λίστα (List Of) των χρωμάτων σε ένα GradientMulti τύπο background.

Τύπος : List (Of GradientMultiInfoStruct)

Default τιμή : New List(Of GradientMultiInfoStruct)

Σημείωση : Η ιδιότητα αυτή τίθεται, στην παρούσα έκδοση, μόνο μέσω κώδικα κι όχι στον Property Editor (design mode).

Παράδειγμα : Στο MLightPanel1 ορίζουμε multi-Gradient με τρία χρώματα μαύρο-κίτρινο-κόκκινο και τον προσανατολισμό σε Vertical :

Imports Mouratx.Win

'Δημιούργησε τη λίστα τύπου GradientMultiInfoStruct
Dim LstColors As New List(Of clsBackColorInfo.GradientMultiInfoStruct)

Dim item As clsBackColorInfo.GradientMultiInfoStruct

'Δημιούργησε μία μεταβλητή item τύπου GradientMultiInfoStruct και βάλε τις πληροφορίες για 3 χρώματα : μαύρο, κίτρινο, κόκκινο Πρόσθεσε κάθε item στη λίστα..
item.Color = Color.Black : item.Position = 0 : LstColors.Add(item)
item.Color = Color.Yellow : item.Position = 0 : LstColors.Add(item)
item.Color = Color.Red : item.Position = 0 : LstColors.Add(item)

'Εκχώρησε τη λίστα στην αντίστοιχη ιδιότητα του control, όρισε Gradient mode και καθόρισε τον τύπο του backhround
With MLightPanel1.BackColorInfo

.ColorGradientMulti = LstColors
.GradientMultiMode = clsBackColorInfo.GradientModeEnum.Vertical
 .BackColorType = clsBackColorInfo.BackColorTypeEnum.GradientMulti

End With

MLightPanel1.Invalidate()


HatchHatchStyle

HatchHatchStyle

Ιδότητα της κλάσης clsBackColoInfo.

Θέτει ή λαμβάνει το στυλ ενός διαγραμμισμένου μοτίβου.

Τύπος : System.Drawing.Drawing2D.HatchStyle

Default τιμή : System.Drawing.Drawing2D.HatchStyle.Cross

Παράδειγμα : Στο MLightPanel1 ορίζουμε ένα Cross Ηatch style με διαγράμμιση κόκκινη και φόντο κίτρινο :

Imports Mouratx.Win

With MLightPanel1.BackColorInfo

.HatchHatchStyle = System.Drawing.Drawing2D.HatchStyle.Cross
.HatchForeColor = Color.Red
.HatchBackColor = Color.Yellow
.BackColorType = clsBackColorInfo.BackColorTypeEnum.Hatch

End With

MLightPanel1.Invalidate()


HatchForeColor

HatchForeColor

Ιδότητα της κλάσης clsBackColoInfo.

Θέτει ή λαμβάνει χρώμα των γραμμών ενός διαγραμμισμένου μοτίβου.

Τύπος : Color

Default τιμή : Color.Black

Παράδειγμα : Στο MLightPanel1 ορίζουμε ένα Cross Ηatch style με διαγράμμιση κόκκινη και φόντο κίτρινο :

Imports Mouratx.Win

With MLightPanel1.BackColorInfo

.HatchHatchStyle = System.Drawing.Drawing2D.HatchStyle.Cross
.HatchForeColor = Color.Red
.HatchBackColor = Color.Yellow
.BackColorType = clsBackColorInfo.BackColorTypeEnum.Hatch

End With

MLightPanel1.Invalidate()


HatchBackColor

HatchBackColor

Ιδότητα της κλάσης clsBackColoInfo.

Θέτει ή λαμβάνει χρώμα των κενών μεταξύ των γραμμών ενός διαγραμμισμένου μοτίβου.

Τύπος : Color

Default τιμή : Color.WhiteSmoke

Παράδειγμα : Στο MLightPanel1 ορίζουμε ένα Cross Ηatch style με διαγράμμιση κόκκινη και φόντο κίτρινο :

Imports Mouratx.Win

With MLightPanel1.BackColorInfo

.HatchHatchStyle = System.Drawing.Drawing2D.HatchStyle.Cross
.HatchForeColor = Color.Red
.HatchBackColor = Color.Yellow
.BackColorType = clsBackColorInfo.BackColorTypeEnum.Hatch

End With

MLightPanel1.Invalidate()


TextureImage

TextureImage

Ιδότητα της κλάσης clsBackColoInfo.

Θέτει ή λαμβάνει μία εικόνα (Bitmap) ως Texture.

Τύπος : Image

Default τιμή : Nothing

Παράδειγμα : Στο MLightPanel1 ορίζουμε ως Texture μία bitmap εικόνα, με τον τρόπο σχεδιασμού (ιδιότητα TextureWrapStyle) σε Zoom :

Imports Mouratx.Win

With MLightPanel1.BackColorInfo

.TextureImage = Image.FromFile("Σαμοθράκη.jpg")
 .TextureWrapStyle = clsBackColorInfo.WrapStylesEnum.Zoom
 .BackColorType = clsBackColorInfo.BackColorTypeEnum.Texture

End With

MLightPanel1.Invalidate()


TextureWrapStyle

TextureWrapStyle

Ιδότητα της κλάσης clsBackColoInfo.

Θέτει ή λαμβάνει τον τρόπο σχεδιασμού της εικόνας σε ένα Texture. Π.χ. zoom, stretch, tile κλπ.

Τύπος : WrapStylesEnum

Default τιμή : WrapStylesEnum.Stretch

Παράδειγμα : Στο MLightPanel1 ορίζουμε ως Texture μία bitmap εικόνα, με τον τρόπο σχεδιασμού (ιδιότητα TextureWrapStyle) σε Zoom :

Imports Mouratx.Win

With MLightPanel1.BackColorInfo

.TextureImage = Image.FromFile("Σαμοθράκη.jpg")
 .TextureWrapStyle = clsBackColorInfo.WrapStylesEnum.Zoom
 .BackColorType = clsBackColorInfo.BackColorTypeEnum.Texture

End With

MLightPanel1.Invalidate()


TextureScaleX

TextureScaleX

Ιδότητα της κλάσης clsBackColoInfo.

Θέτει ή λαμβάνει την ανάπτυξη κατά πλάτος μίας εικόνας σε T ile wrap style, σε ένα Texture.

Τύπος : Single

Εύρος τιμών : Από 0 έως 1

Default τιμή : 0.2

Σημείωση : Η ιδιότητα λαμβάνεται υπόψη μόνο αν έχετε ορίσει στην TextureWrapStyle τιμή Tile, TileFlipX, TileFlipY, και TileFlipXΥ.

Παράδειγμα : Στο MLightPanel1 ορίζουμε ως Texture μία bitmap εικόνα, με τον τρόπο σχεδιασμού (ιδιότητα TextureWrapStyle) σε Zoom :

Imports Mouratx.Win

With MLightPanel1.BackColorInfo

.TextureImage = Image.FromFile("Author.jpg")
 .TextureWrapStyle = clsBackColorInfo.WrapStylesEnum.Zoom
.TextureScaleX = 0.3
.TextureScaleY = 0.25
 .BackColorType = clsBackColorInfo.BackColorTypeEnum.Texture

End With

MLightPanel1.Invalidate()


TextureScaleΥ

TextureScaleΥ

Ιδότητα της κλάσης clsBackColoInfo.

Θέτει ή λαμβάνει την ανάπτυξη κατά ύψος μίας εικόνας σε T ile wrap style, σε ένα Texture.

Τύπος : Single

Εύρος τιμών : Από 0 έως 1

Default τιμή : 0.2

Σημείωση : Η ιδιότητα λαμβάνεται υπόψη μόνο αν έχετε ορίσει στην TextureWrapStyle τιμή Tile, TileFlipX, TileFlipY, και TileFlipXΥ.

Παράδειγμα : Στο MLightPanel1 ορίζουμε ως Texture μία bitmap εικόνα, με τον τρόπο σχεδιασμού (ιδιότητα TextureWrapStyle) σε Zoom :

Imports Mouratx.Win

With MLightPanel1.BackColorInfo

.TextureImage = Image.FromFile("Author.jpg")
 .TextureWrapStyle = clsBackColorInfo.WrapStylesEnum.Zoom
.TextureScaleX = 0.3
.TextureScaleY = 0.25
 .BackColorType = clsBackColorInfo.BackColorTypeEnum.Texture

End With

MLightPanel1.Invalidate()


AlphaValue

AlphaValue

Ιδότητα της κλάσης clsBackColoInfo.

Θέτει ή λαμβάνει τη διαφάνεια του background. Δεν αφορά μοτίβο και Tile wrap style texture.

Τύπος : Integer

Εύρος τιμών : Από 0 έως 255

Default τιμή : 255 (αδιαφανές - opaque)

Με την ιδιότητα αυτή μπορείτε να εφαρμόσετε ένα ενδιαφέρον υδατογράφημα θέτοντας τιμές κοντά στην ημιδιαφάνεια (128).

Σημείωση : Η ιδιότητα αγνοείται αν έχετε ορίσει BackColorType σε Hatch ή Texture με Tile wrapstyle.

Παράδειγμα : Στο MLightPanel1 ορίζουμε ως Texture μία bitmap εικόνα, με τον τρόπο σχεδιασμού (ιδιότητα TextureWrapStyle) σε Zoom και ημιδιαφάνεια :

Imports Mouratx.Win

With MLightPanel1.BackColorInfo

.TextureImage = Image.FromFile("Σαμοθράκη.jpg")
 .TextureWrapStyle = clsBackColorInfo.WrapStylesEnum.Zoom
 .BackColorType = clsBackColorInfo.BackColorTypeEnum.Texture
.AlphaValue = 128

End With

MLightPanel1.Invalidate()


SuspendDrawing

SuspendDrawing

Ιδότητα της κλάσης clsBackColoInfo.

Θέτει ή λαμβάνει τη δυνατότητα να ενεργοποιείται ή όχι ή σχεδίαση του control. Χρήσιμο για αποφυγή του παράπλευρου εφέ flickering κατά το resizing του container του control.

Τύπος : Boolean

Default τιμή : False

Παράδειγμα : Χρησιμοποιούμε τα γεγονότα RεsizeBegin και ResizeEnd μίας φόρμας όπου έχουμε τοποθετήσει ένα MLightPanel. :

Imports Mouratx.Win

'----------------------------------------------------------------------------------------------

Private Sub Form1_ResizeBegin(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.ResizeBegin

MLightPanel1.BackColorInfo.SuspendDrawing = True

End Sub

'----------------------------------------------------------------------------------------------

Private Sub Form1_ResizeEnd(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.ResizeEnd

MLightPanel1.BackColorInfo.SuspendDrawing = False

MLightPanel1.Invalidate()

Εnd Sub


Οι μέθοδοι της κλάσης clsBackColorInfo

Οι μέθοδοι της κλάσης clsBackColorInfo

Constructor New

Δημιουργεί ένα αντικείμενο clsBackColorInfo, με προκαθορισμένες τιμές στις ιδιότητες.

CopyFrom | Αντιγράφει τις τιμές από ένα άλλο αντικείμενο clsBackColorInfo στο τρέχον.
FillBackGround | Σχεδιάζει το background ενός control σύμφωνα με τις τιμές του αντικειμένου.


Constructor New

Constructor New

Μέθοδος της κλάσης clsBackColoInfo.

Δημιουργεί ένα αντικείμενο clsBackColorInfo, με προκαθορισμένες τιμές στις ιδιότητες.

  • Public Sub New()

Παράδειγμα :

Dim clr As New clsBackColorInfo


CopyFrom

CopyFrom

Μέθοδος της κλάσης clsBackColoInfo.

Αντιγράφει τις τιμές από ένα άλλο αντικείμενο clsBackColorInfo στο τρέχον.

Public Function CopyFrom (ByVal whatBackColorInfo As clsBackColorInfo) As Boolean

Παράμετροι :

  • whatBackColorInfo : Το αντικείμενο από το οποίο θα πάρει τις τιμές.

Επιστρεφόμενη τιμή :

  • True αν δεν προκύψει πρόβλημα κατά την αντιγραφή των τιμών, αλλιώς False.

Παράδειγμα : Θέτουμε ένα μοτίβο με κόκκινες γραμμές σε κίτρινο φόντο στο MLightPanel.

Dim clr As New clsBackColorInfo

'Πέρνα τις υπάρχουσες πληροφορίες background στο νέο αντικείμενο
clr.CopyFrom(MLightPanel1.BackColorInfo)

'Άλλαξε τις τιμές
clr.HatchHatchStyle = Drawing2D.HatchStyle.Cross
clr.HatchForeColor = Color.Red
clr.HatchBackColor = Color.Yellow
clr.BackColorType = clsBackColorInfo.BackColorTypeEnum.Hatch

'Θέσε το αντικείμενο στην ιδιότητα του control
MLightPanel1.BackColorInfo = clr

MLightPanel1.Invalidate()

Συνήθης πρακτική είναι να περνάμε, με τη μέθοδο CopyFrom, τις υπάρχουσες πληροφορίες φόντου του control σε ένα νέο αντικείμενο, να τις αλλάζουμε και να τις εκχωρούμε πίσω στο control.


FillBackGround

FillBackGround

Μέθοδος της κλάσης clsBackColoInfo.

Σχεδιάζει το background ενός control σύμφωνα με τις τιμές του αντικειμένου.

Public Sub FillBackGround (ByRef e As System.Windows.Forms.PaintEventArgs, ByVal rect As Rectangle)

Παράμετροι :

  • e : Το αντικείμενο της επιφάνειας σχεδίασης του control.
  • rect : Μία δομή Rectangle που καθορίζει τα όρια σχεδίασης στην επιφάνεια.

Η μέθοδος αυτή χρησιμοποιείται, συνήθως, μέσα στη ρουτίνα Paint του control. Χρήσιμο για τη δημιουργία δυναμικών controls που περιέχουν ως ιδιότητα την BackColorInfo.

Παράδειγμα : Στο παράδειγμα που ακολουθεί βάζουμε τον περισσότερο κώδικα στη ρουτίνα Load μίας φόρμας. Συγκεκριμένα, δημιουργούμε δυναμικά ένα MLightPanel control, θέτουμε κάποιες ιδιότητες, το προσθέτουμε στη συλλογή των controls της φόρμας και καλούμε τη μέθοδο Invalidate() που το σχεδιάζει.
Η μέθοδος FillBackGround καλείται στο εσωτερικό μίας delegate συνάρτησης του γεγονότος Paint του control :

Private Sub Form1_Load (ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles MyBase.Load

Dim MLightPanelDynamic As New MLightPanel

'Όρισε ένα delegate function pointer για το γεγονός Paint του control
 AddHandler MLightPanelDynamic.Paint, AddressOf PaintMLightPanel

'Σημείο τοποθέτησης στη φόρμα και μέγεθος.
 MLightPanelDynamic.Location = New Point(0, 0)
MLightPanelDynamic.Size = New Size(200, 150)

'Θέσε κάποιες ιδιότητες του control
With MLightPanelDynamic.BackColorInfo

 .BackColorType = clsBackColorInfo.BackColorTypeEnum.GradientTwo
.ColorGradient1 = Color.Black
 .ColorGradient2 = Color.Yellow
.GradientTwoMode = clsBackColorInfo.GradientModeEnum.Centered

End With

'Πρόσθεσέ το στη συλλογή των controls της φόρμας
 Me.Controls.Add(MLightPanelDynamic)

'Καλείται η ρουτίνα Paint του control που το σχεδιάζει
 MLightPanelDynamic.Invalidate()

End Sub

'---------------------------------------------------------------------

'Delegate function για το γεγονός Paint του MLightPanelDynamic
Private Sub PaintMLightPanel (ByVal sender As Object, ByVal e As PaintEventArgs)

Dim MLPanel As MLightPanel = DirectCast (sender, MLightPanel)

With MLPanel

.BackColorInfo.FillBackGround (e, New Rectangle(0, 0, .Width, .Height))

End With

End Sub


Ver 1.1

Ver 1.1

Διορθώσεις :

1. Διορθώθηκε το πρόβλημα της ενημέρωσης του γραφικού του property box στην ιδιότητα BackColorInfo.